this.actor.add_style_class_name('app-well-menu');
+ this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' });
+
// Chain our visibility and lifecycle to that of the source
source.actor.connect('notify::mapped', Lang.bind(this, function () {
if (!source.actor.mapped)
this.emit('activate-window', null);
}));
}
- this._appendSeparator();
- let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._source.app.get_id());
+ let canFavorite = this._settings.is_writable('favorite-apps');
- if (isFavorite) {
- let item = this._appendMenuItem(_("Remove from Favorites"));
- item.connect('activate', Lang.bind(this, function() {
- let favs = AppFavorites.getAppFavorites();
- favs.removeFavorite(this._source.app.get_id());
- }));
- } else {
- let item = this._appendMenuItem(_("Add to Favorites"));
- item.connect('activate', Lang.bind(this, function() {
- let favs = AppFavorites.getAppFavorites();
- favs.addFavorite(this._source.app.get_id());
- }));
+ if (canFavorite) {
+ this._appendSeparator();
+
+ let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._source.app.get_id());
+
+ if (isFavorite) {
+ let item = this._appendMenuItem(_("Remove from Favorites"));
+ item.connect('activate', Lang.bind(this, function() {
+ let favs = AppFavorites.getAppFavorites();
+ favs.removeFavorite(this._source.app.get_id());
+ }));
+ } else {
+ let item = this._appendMenuItem(_("Add to Favorites"));
+ item.connect('activate', Lang.bind(this, function() {
+ let favs = AppFavorites.getAppFavorites();
+ favs.addFavorite(this._source.app.get_id());
+ }));
+ }
}
if (Shell.AppSystem.get_default().lookup_app('org.gnome.Software.desktop')) {
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
+const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Signals = imports.signals;
const Lang = imports.lang;
if (app == null)
return false;
+ if (!this._settings.is_writable('favorite-apps'))
+ return false;
+
let id = app.get_id();
let isFavorite = AppFavorites.getAppFavorites().isFavorite(id);
return isFavorite;
this._workId = Main.initializeDeferredWork(this._box, Lang.bind(this, this._redisplay));
+ this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' });
+
this._appSystem = Shell.AppSystem.get_default();
this._appSystem.connect('installed-changed', Lang.bind(this, function() {
if (app == null || app.is_window_backed())
return DND.DragMotionResult.NO_DROP;
+ if (!this._settings.is_writable('favorite-apps'))
+ return DND.DragMotionResult.NO_DROP;
+
let favorites = AppFavorites.getAppFavorites().getFavorites();
let numFavorites = favorites.length;
return false;
}
+ if (!this._settings.is_writable('favorite-apps'))
+ return false;
+
let id = app.get_id();
let favorites = AppFavorites.getAppFavorites().getFavoriteMap();